import {
	http,
	toast
} from '@/uni_modules/uview-plus';
// token
import {
	useAuthStore
} from '@/stores/auth';

// 请求拦截

const requestInterceptors = (vm) => {
	let authStore = useAuthStore();
	/**
	 * 请求拦截
	 * @param {Object} http
	 */
	http.interceptors.request.use((config) => { // 可使用async await 做异步操作
			// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
			config.data = config.data || {};
			/* 携带token */
			if (authStore.token) {
				config.headers['Authorization'] = `Bearer ${token}`;
			}
			return config;
		}, (config) => // 可使用async await 做异步操作
		Promise.reject(config));
};



const responseInterceptors = (vm) => {
	/**
	 * 响应拦截
	 * @param {Object} http 
	 */
	http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		// 对响应数据做点什么
		const res = response.data;
		// console.log('http', data)

		// if (res.code !== 200) {
		// 	// 根据你的API返回格式处理错误
		// 	toast(res.message);
		// 	return Promise.reject(new Error(res.message || 'Error'));
		// } else {
		// 	return res;
		// }
		
		return res;

	}, (response) => {
		/*  对响应错误做点什么 （statusCode !== 200）*/
		return Promise.reject(response);
	});
};


export {
	requestInterceptors,
	responseInterceptors
};